package com.example;

/**
 * @Author loubobooo
 * @Description #14最长公共前缀
 * @Date 2019/9/27
 */
public class LongestCommonPrefix {

    /**
     * @return
     * @Author loubobooo
     * @Description 编写一个函数来查找字符串数组中的最长公共前缀。
     * 如果不存在公共前缀，返回空字符串 ""。
     * @Date 2019/9/27 9:51
     * @Param
     **/
    public String longestCommonPrefix(String[] strs) {
        // 先判定数组不为空
        if (strs.length > 0) {
            // 利用数组中第一个元素去做后续分匹配
            String prefix = strs[0];
            for (int i = 1; i < strs.length; i++) {
                while (strs[i].indexOf(prefix) != 0) {
                    // 这里利用循环缩减prefix的大小，不断取得符合要求的前缀
                    prefix = prefix.substring(0, prefix.length() - 1);
                    if (prefix.isEmpty()) return "";
                }
            }
            return prefix;
        }
        return "";
    }


    public static void main(String[] args) {
        String[] strs = {"dog", "racecar", "car"};
        LongestCommonPrefix longestCommonPrefix = new LongestCommonPrefix();
        String s = longestCommonPrefix.longestCommonPrefix(strs);
        System.out.println(s);
    }
}
